package com.macro.mall.portal.service;

import com.macro.mall.mgb.model.CartItem;
import com.macro.mall.portal.domain.CartPromotionItem;

import java.util.List;

/**
 * @author wangwang
 * @version 1.0
 * @description 用户购物车管理
 * @date 2025/7/31 16:35
 */
public interface CartItemService {
    /**
     * 添加购物车
     * @param cartItem
     * @return
     */
    int add(CartItem cartItem);

    /**
     * 查询购物车
     * @param id
     * @return
     */
    List<CartItem> list(Long id);

    /**
     * 修改购物车商品数量
     * @param id
     * @param memberId
     * @param quantity
     * @return
     */
    int updateQuantity(Long id, Long memberId, Integer quantity);

    /**
     * 删除购物车中的指定商品
     * @param memberId
     * @param ids
     * @return
     */
    int delete(Long memberId, List<Long> ids);

    /**
     * 清空当前会员的购物车
     * @param memberId
     * @return
     */
    int clear(Long memberId);

    /**
     * 包括促销信息
     * @param id 会员id
     * @param cartIds 购物车id
     * @return
     */
    List<CartPromotionItem> listPromotion(Long id, List<Long> cartIds);
}
